package com.ccf.business.source.service;

import com.ccf.business.source.model.Source;
import com.ccf.business.source.model.vo.FolderVO;
import com.ccf.business.source.model.vo.UploadVO;
import com.common.model.result.PageResult;
import com.common.model.pojo.Query;
import com.service.mybatis.service.ISuperService;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.util.List;


/**
 * 文件中心
 *
 * @author ccf
 * @date 2022-02-15 14:20:52
 */
public interface ISourceService extends ISuperService<Source> {
    /**
     * 列表
     * @param query
     * @return
     */
    PageResult<Source> findList(Query query);

    /**
     * 移动文件
     * @param idArray
     * @param pid
     */
    void move(String[] idArray, String pid);

    /**
     * 保存或者重命名
     * @param file
     */
    void saveOrRename(Source file);

    /**
     * 删除缓存
     * @param ids
     */
    void removeAndCacheByIds(String... ids);

    /**
     * 打包文件
     * @param id
     * @return
     */
    File packageToDir(String id);

    /**
     * 查询文件目录
     * @param name
     * @return
     */
    List<FolderVO> folderList(String name);

    /**
     * 查询文件列表
     * @param pid
     * @return
     */
    List<Source> fileList(String pid, String name, String fileType, String fileTypes);

    /**
     * 查询详情
     * @param id
     * @return
     */
    Source detail(String id);

    /**
     * 批量上传
     * @param files
     * @param pid
     */
    void upload(MultipartFile[] files, String pid) throws Exception;

    /**
     * 获取上传进度
     * @return
     */
    List<UploadVO> uploadList();
}

